﻿$("document").ready(function() { Admin.Init(); });

var Admin = {};
Admin.tinyMCE = null;

Admin.Init = function() {
    $("#btn_EditContent").button(
        { icons: { primary: "ui-icon-pencil" }
        }
    ).click(function() {
        Admin.editContent();
    });
    
    Admin.doTinyMCE();
};

Admin.editContent = function() {
    Admin.tinyMCE.html($("#tabContent").html());
    
    $("#tabContent").hide(); $("#editContent").fadeIn(1000);
    //$("#tabContent").fadeOut("fast", function() { $("#editContent").fadeIn(1000); });


};

Admin.saveContent = function() {
    var content = Admin.tinyMCE.tinymce().getContent().replace(/^<p>|<\/p>$/, "");
    var aContent = content.split("src=\"");
    var AppName = "/" + Site.AppName + "/";
    for (var x = 1; x < aContent.length; x++) {
        var newContent = aContent[x];
        newContent = newContent.replace(/^\//, "");
        newContent = newContent.replace(/^..\//, "");
        if (newContent.substring(0, Site.AppName.length) != Site.AppName) {
            aContent[x] = AppName + newContent;
        }
        else {
            aContent[x] = "/" + newContent;
        }
    }
    content = aContent.join("src=\"");

    var ed = tinyMCE.get('ta_editContent');
    ed.setProgressState(1);

    var fnSuccess = function(data) {
        fnFinish();
    };
    var fnFinish = function() {
        ed.setProgressState(0);
        $("#tabContent").html(content);
        $("#editContent").fadeOut("fast", function() { $("#tabContent").show(); });
    }
    var fnError = function(xhr, sStatus) {
        fnFinish();
    };

    $.ajax(
        {
            type: "POST"
            , url: "/" + Site.AppName + "/AJAX/saveContent"
            , data: {
                pageName: Site.selectedPage
                , tabName: Site.selectedTab
                , HTML: escape(content)
            }
            , success: fnSuccess
            , error: fnError
            , dataType: "json"

        });


};

Admin.doTinyMCE = function() {
    PathPrefix = "/" + Site.AppName + "/";
    $('textarea.tinymce').tinymce({
        // Location of TinyMCE script
        script_url: PathPrefix + "Scripts/tinymce_3_3_8_jquery/tinymce/jscripts/tiny_mce/tiny_mce.js",

        // General options
        theme: "advanced",
        skin: "o2k7",
        plugins: "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist",

        // Theme options
        theme_advanced_buttons1: "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
        theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
        theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
        theme_advanced_toolbar_location: "top",
        theme_advanced_toolbar_align: "left",
        theme_advanced_statusbar_location: "bottom",
        theme_advanced_resizing: true,
        save_onsavecallback: function() { Admin.saveContent(); },

        // Example content CSS (should be your site CSS)
        content_css: PathPrefix + "Content/Site.css",

        // Drop lists for link/image/media/template dialogs
        template_external_list_url: "lists/template_list.js",
        external_link_list_url: "lists/link_list.js",
        external_image_list_url: "lists/image_list.js",
        media_external_list_url: "lists/media_list.js",

        // Replace values for the template plugin
        template_replace_values: {
            username: "Some User",
            staffid: "991234"
        }
    });

    Admin.tinyMCE = $("#ta_editContent");
};

